namespace Sessionizer.Core
{
    /// <summary>
    /// Factory for session.
    /// Creates new session always.
    /// </summary>
    public interface ISessionFactory
    {
        /// <summary>
        /// Creates new session with empty configuration.
        /// </summary>
        /// <returns>New instance of ISession</returns>
        ISession Create();


        /// <summary>
        /// Creates new session with given configuration.
        /// </summary>
        /// <param name="configuration">Configuration for session</param>
        /// <returns>New session instance.</returns>
        ISession Create(ISessionConfiguration configuration);
    }
}